use thiserror::Error as ErrorTrait;

use super::*;

#[derive(Debug, ErrorTrait)]
pub enum Error {}

pub type Result<T> = std::result::Result<T, Error>;

pub async fn bootstrap_node(id: NodeId, booststrap_node_addr: &EndpointAddr) -> Result<Node> {
    todo!()
}

pub async fn bootstrap_root_node(id: NodeId) -> Result<Node> {
    todo!()
}

#[derive(Clone)]
pub struct NodeId {}

pub struct Node {}

impl Node {}

pub struct Exchanger {}

impl Exchanger {
    pub async fn fetch_and_store(&self) {}
}
